package com.itheima.d1_serialize;

import java.io.FileInputStream;
import java.io.ObjectInputStream;

//目标：掌握对象字节输入流ObjectInputStream从文件中读取对象
public class Demo02 {
    public static void main(String[] args) throws Exception {
        /**
         * ObjectInputStream(InputStream out)：把低级字节输如流包装成高级的对象字节输入流
         * Object readObject()：把存储到磁盘文件中去的对象数据恢复成内存中的对象返回
         *
         * 注意：读取对象的顺序要和写入的顺序保持一致
         */
        //需求：读取obj.txt文件中，在Demo01案例里存储的Person对象！

        //1.创建对象字节输入流对象，提供基础的字节输入流对象（FileInputStream）
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream("day10-io&thread\\resources\\obj.txt"));

        //2.调用readObject方法读取对象
        Object obj = ois.readObject();
        Person p = (Person) obj;
        System.out.println(p);

        //3.此时文件中已经没有对象可以读了，如果继续读取，代码会报错：EOFException
        ois.readObject();
    }
}
